from langchain_core.output_parsers import StrOutputParser, CommaSeparatedListOutputParser
from langchain.output_parsers import BooleanOutputParser, DatetimeOutputParser
from app.bailian.common import llm, chat_prompt_template
from langchain_core.prompts import ChatPromptTemplate


# 使用字符串输出解析器
# parser = StrOutputParser()

# 使用逗号分隔列表输出解析器
# parser = CommaSeparatedListOutputParser()

# 使用布尔值输出解析器
# parser = BooleanOutputParser()

# 使用日期时间输出解析器
parser = DatetimeOutputParser()
instructions = parser.get_format_instructions()

prompt = ChatPromptTemplate.from_messages([
    ("system", f"必须按照以下格式返回日期时间：{instructions}"),
    ("user", "请将以下自然语言转换为日期时间格式：{text}"),
])

chain = prompt | llm | parser
resp = chain.invoke(input={
    "text": "2024年6月15日下午3点半"
})

print(resp)